home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / binutils.7 / binutils / binutils-2.7 / include / elf / alpha.h next >
Encoding:
C/C++ Source or Header  |  1996-07-04  |  3.1 KB  |  87 lines

  1. /* ALPHA ELF support for BFD.
  2.    Copyright (C) 1996 Free Software Foundation, Inc.
  3.  
  4.    By Eric Youngdale, <eric@aib.com>.  No processor supplement available
  5.    for this platform.
  6.  
  7. This file is part of BFD, the Binary File Descriptor library.
  8.  
  9. This program is free software; you can redistribute it and/or modify
  10. it under the terms of the GNU General Public License as published by
  11. the Free Software Foundation; either version 2 of the License, or
  12. (at your option) any later version.
  13.  
  14. This program is distributed in the hope that it will be useful,
  15. but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. GNU General Public License for more details.
  18.  
  19. You should have received a copy of the GNU General Public License
  20. along with this program; if not, write to the Free Software
  21. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
  22.  
  23. /* This file holds definitions specific to the ALPHA ELF ABI.  Note
  24.    that most of this is not actually implemented by BFD.  */
  25.  
  26. #ifndef _ELF_ALPHA_H
  27. #define _ELF_ALPHA_H
  28.  
  29. /* Processor specific section flags.  */
  30.  
  31. /* This section must be in the global data area.  */
  32. #define SHF_ALPHA_GPREL        0x10000000
  33.  
  34. /* Section contains some sort of debugging information.  The exact
  35.    format is unspecified.  It's probably ECOFF symbols.  */
  36. #define SHT_ALPHA_DEBUG        0x70000001
  37.  
  38. /* Section contains register usage information.  */
  39. #define SHT_ALPHA_REGINFO    0x70000002
  40.  
  41. /* A section of type SHT_MIPS_REGINFO contains the following
  42.    structure.  */
  43. typedef struct
  44. {
  45.   /* Mask of general purpose registers used.  */
  46.   unsigned long ri_gprmask;
  47.   /* Mask of co-processor registers used.  */
  48.   unsigned long ri_cprmask[4];
  49.   /* GP register value for this object file.  */
  50.   long ri_gp_value;
  51. } Elf64_RegInfo;
  52.  
  53. /* Alpha relocs.  */
  54.  
  55. #define R_ALPHA_NONE        0    /* No reloc */
  56. #define R_ALPHA_REFLONG        1    /* Direct 32 bit */
  57. #define R_ALPHA_REFQUAD        2    /* Direct 64 bit */
  58. #define R_ALPHA_GPREL32        3    /* GP relative 32 bit */
  59. #define R_ALPHA_LITERAL        4    /* GP relative 16 bit w/optimization */
  60. #define R_ALPHA_LITUSE        5    /* Optimization hint for LITERAL */
  61. #define R_ALPHA_GPDISP        6    /* Add displacement to GP */
  62. #define R_ALPHA_BRADDR        7    /* PC+4 relative 23 bit shifted */
  63. #define R_ALPHA_HINT        8    /* PC+4 relative 16 bit shifted */
  64. #define R_ALPHA_SREL16        9    /* PC relative 16 bit */
  65. #define R_ALPHA_SREL32        10    /* PC relative 32 bit */
  66. #define R_ALPHA_SREL64        11    /* PC relative 64 bit */
  67. #define R_ALPHA_OP_PUSH        12    /* OP stack push */
  68. #define R_ALPHA_OP_STORE    13    /* OP stack pop and store */
  69. #define R_ALPHA_OP_PSUB        14    /* OP stack subtract */
  70. #define R_ALPHA_OP_PRSHIFT    15    /* OP stack right shift */
  71. #define R_ALPHA_GPVALUE        16
  72. #define R_ALPHA_GPRELHIGH    17
  73. #define R_ALPHA_GPRELLOW    18
  74. #define R_ALPHA_IMMED_GP_16    19
  75. #define R_ALPHA_IMMED_GP_HI32    20
  76. #define R_ALPHA_IMMED_SCN_HI32    21
  77. #define R_ALPHA_IMMED_BR_HI32    22
  78. #define R_ALPHA_IMMED_LO32    23
  79. #define R_ALPHA_COPY        24    /* Copy symbol at runtime */
  80. #define R_ALPHA_GLOB_DAT    25    /* Create GOT entry */
  81. #define R_ALPHA_JMP_SLOT    26    /* Create PLT entry */
  82. #define R_ALPHA_RELATIVE    27    /* Adjust by program base */
  83.  
  84. #define R_ALPHA_max        28
  85.  
  86. #endif /* _ELF_ALPHA_H */
  87.